1. Technical Field
The present invention relates generally to a system, and computer program product for optimizing the use of computing resources. Particularly, the present invention relates to a system, and computer program product for optimizing computing resource usage in a cloud computing environment using workload analysis.
2. Description of the Related Art
Cloud computing is one of the emerging technologies that is enabling flexible and efficient computing. Cloud computing offers an on-demand model for computing that reduces, or in some cases, completely avoids the hardware and software maintenance costs for an end user of the computing services.
Cloud computing also generally has a lower total cost of ownership as compared to captive computing capabilities, such as dedicated/owned data processing systems. The flexibility of using selected computing resources when they are needed, as a service, is a key advantage of cloud computing that endear the cloud model to all types of users, including business enterprises, high power computing groups, and individual users.
Cloud computing is generally offered in two models. Platform as a Service (PaaS) model for cloud computing provides a user with a complete setup on which to execute the user's application or workload. The PaaS model provides an integrated hardware and software architecture that appears as a “platform” on which the user's workloads can execute. The PaaS model provides a facility to execute a workload without providing the user with control over the configuration of the data processing environment.
Infrastructure as a Service (IaaS) model of cloud computing, on the other hand, provides the user with a data processing environment per the user's request. In other words, IaaS model provides to the user “machine time” on a data processing system of the user's desired configuration. Typically, the data processing environment in the IaaS model takes the form of virtual machines (VMs) created according to a user-provided specification and allocated to the user for the duration of the user's workload.
The PaaS model requires the user to specify the user's workload and then provides the user a transparently configured data processing system for the execution of that user's workload. The IaaS model provides the user the flexibility to configure a data processing system according to the user's needs and then execute any workload on that data processing system as the user may wish.